import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/baza")
public class baza extends HttpServlet {
 
	public void init(ServletConfig config) throws ServletException {	
		super.init(config);
	}
 
	public void destroy() {
 
	}
 
	public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
		HttpSession sesja = request.getSession(true);
		response.setContentType("text;charset=UTF-8");
		response.setCharacterEncoding("UTF-8");
		request.setCharacterEncoding("UTF-8");
		PrintWriter out = response.getWriter();
		String odp="";
		//sprawdz czy login już istnieje (przy rejestracji)
		if(request.getParameter("login")!=null){
			out = response.getWriter();
			ArrayList loginy = new ArrayList();
			 try {
				  Connection con =mb.commons.DbConnection.getConnection();
				  Statement stmt = con.createStatement();
				  ResultSet rs = stmt.executeQuery("SELECT login FROM uzytkownicy");
					    while(rs.next()){
					    	loginy.add(rs.getString("login"));	  
						}	  
					 if(loginy.contains(request.getParameter("login").toString())) out.println("1");
					 else out.println("0");
			
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		}//sprawdz czy konto o podanym mailu/loginie istnieje (przypomnienie hasła)
		else if( request.getParameter("log")!=null && request.getParameter("mail")!=null){
			out = response.getWriter();
			String login = request.getParameter("log").toString();
			String mail = request.getParameter("mail").toString();
			ArrayList wyniki = new ArrayList();
			 try {
				 Connection con = mb.commons.DbConnection.getConnection();
				 Statement stmt = con.createStatement();
				 ResultSet rs = stmt.executeQuery("SELECT login FROM uzytkownicy where login LIKE '"+login+"' and mail like '"+mail+"'");
					    while(rs.next()){
					    	wyniki.add(rs.getString("login"));	  
						}	  
					 if(wyniki.isEmpty()) out.println("0");
					 else out.println("1");
				
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}		
		}//przekierowanie do zmiany hasła
		else if( request.getParameter("name")!=null && request.getParameter("mail")!=null){
			if(request.getParameter("name").equals("")){
				sesja.setAttribute("login", "");
			}else{
				sesja.setAttribute("login", request.getParameter("name").toString());
				response.sendRedirect("index.jsp?add=forgot&state=change");
			}
		}//zmiana hasla
		else if( request.getParameter("pass")!=null && sesja.getAttribute("nick")!=""){
			out = response.getWriter();
			String login = sesja.getAttribute("nick").toString();
			String pass = request.getParameter("pass").toString();
			ArrayList wyniki = new ArrayList();
			 try {
				  Connection con = mb.commons.DbConnection.getConnection();
				  Statement stmt = con.createStatement();
				  ResultSet rs = stmt.executeQuery("SELECT login FROM uzytkownicy where login LIKE '"+login+"' and haslo like '"+pass+"'");
					    while(rs.next()){
					    	wyniki.add(rs.getString("login"));	  
						}	  
					 if(wyniki.isEmpty()) out.write("no");					 
					 else out.write("ok");
					 out.flush();
					 out.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}		
		}//zmiana ustawien uzytkownika
		else if (request.getParameter("add")!=null && request.getParameter("add").equals("update")){
			try {
				Connection con =mb.commons.DbConnection.getConnection();
				Statement stmt = con.createStatement();
				String login = sesja.getAttribute("nick").toString();
				int query,id_oddzialu=0,id=0;
				String oddzial=null;
				SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
				Date data = new Date();
				ResultSet rs = stmt.executeQuery("SELECT id FROM uzytkownicy where login LIKE '"+login+"'");
			    while(rs.next()){
			    	id=rs.getInt("id");	  
				}	  
			    if(request.getParameter("pesel")!=null) {
				    	  query = stmt.executeUpdate("INSERT INTO `kurier`.`aktualizacje` (`id` ,`edycja` ,`wartosc`,`wiadomosc`,`data`) VALUES ('"+id+"', 'pesel', '"+request.getParameter("pesel2").toString()+"', '"+request.getParameter("wiadomosc")+"', '"+sdf.format(data)+"');");
			    }
			    if(request.getParameter("status")!=null) {
			    	  query = stmt.executeUpdate("INSERT INTO `kurier`.`aktualizacje` (`id` ,`edycja` ,`wartosc`,`wiadomosc`,`data`) VALUES ('"+id+"', 'status', '"+request.getParameter("status2").toString()+"', '"+request.getParameter("wiadomosc")+"', '"+sdf.format(data)+"');");
			    }
			    if(request.getParameter("oddzial")!=null) {			    	
			    	rs = stmt.executeQuery("SELECT id FROM oddzialy where nazwa LIKE '"+request.getParameter("oddzial2")+"'");
				    while(rs.next()){
				    	id_oddzialu=rs.getInt("id");	  
					}
				    query = stmt.executeUpdate("INSERT INTO `kurier`.`aktualizacje` (`id` ,`edycja` ,`wartosc`,`wiadomosc`,`data`) VALUES ('"+id+"', 'oddzial', '"+id_oddzialu+"', '"+request.getParameter("wiadomosc")+"', '"+sdf.format(data)+"');");
			    }	
			    response.sendRedirect("index.jsp?add=congratulations&acc=request");	
			
			} catch (SQLException e) {
				response.sendRedirect("index.jsp?add=error&id=1");
				e.printStackTrace();
			}			
		}//wyswietlanie dostepnych paczek w placowkach
		else if (request.getParameter("funkcja")!=null && request.getParameter("funkcja").equals("dostepne_paczki")){
			try {				
				Connection con = mb.commons.DbConnection.getConnection();
				Statement stmt = con.createStatement();
				SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
				Date data = new Date();
				int i=0;
				ResultSet rs = stmt.executeQuery("SELECT o.id,o.nazwa, o.adres, count( z.pozycja ) AS wynik FROM oddzialy o, zamowienia z, paczki p WHERE z.pozycja = o.id AND z.id_paczki=p.id_paczki AND (z.status LIKE 'oczekiwanie na dostarczenie' OR (z.status LIKE 'do odbioru' AND p.data_nad='"+sdf.format(data)+"')) GROUP BY z.pozycja");
				if(!rs.first()) out.write("Aktualnie brak paczek do przyporządkowania kurierom.<br>");
				else{
					rs.previous();
					out.write("<table style='text-align:center' id='tabela_paczek'>");
					out.write("<tr bgcolor='#ADD8E6' ><td style='border: 1px solid;' width=180px; >Nazwa</td><td style='border: 1px solid;' width=180px;>Adres</td><td style='border: 1px solid;' width=180px;>Ilośc paczek nieprzydzielonych</td><td style='border: 1px solid;' width=180px;>Przyporządkuj paczki do kurierów</td></tr>");
					while(rs.next()){
						i++;
						out.write("<tr>");
						out.write("<td style='border: 1px solid;'>"+rs.getString("nazwa")+"</td>");
						out.write("<td style='border: 1px solid;'>"+rs.getString("adres")+"</td>");
						out.write("<td style='border: 1px solid;'>"+rs.getString("wynik")+"</td>");
						out.write("<td style='border: 1px solid;'><input type=checkbox value='"+rs.getString("id")+"'+ id='td"+i+"'></td>");
						out.write("</tr>");
					}
					out.write("<tr><td>&nbsp;</td></tr><tr><td><input type=button value='Zaznacz wszystkie' style='width:180px;' onClick='zaznacz_all();' class=przycisk></td><td><input type=button value='Odznacz wszystkie' style='width:180px;' onClick='odznacz_all();' class=przycisk></td><td></td><td><input type=button value='Przyporzadkuj zaznaczone' style='width:180px;' onClick='przyporzadkuj();' class=przycisk id='przyporzadkuj'></td>");
					out.write("</table>");
					out.write("<hr><br>");
				}				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}//przyporzadkowywanie kurierów do paczek
		else if (request.getParameter("funkcja")!=null && request.getParameter("funkcja").equals("kurierzy") && request.getParameter("lista")!=null){
			try {				
				Connection con = mb.commons.DbConnection.getConnection();
				Statement stmt = con.createStatement();
				int i=0,j=0,k=0,l=0,il=0,tmp=0,tmp2=0,query;
				String param = request.getParameter("lista");
				ArrayList lista = new ArrayList(Arrays.asList(param.split("_")));
				SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
				Date data = new Date();
				for(i=0;i<lista.size();i++){
					ArrayList lista2 = new ArrayList();
					ArrayList kurierzy = new ArrayList();
					ArrayList podzial = new ArrayList();
					ArrayList status = new ArrayList();
					ArrayList<String> guziki = new ArrayList<String>();
					String placowka=null;
					ResultSet rs = stmt.executeQuery("SELECT o.nazwa, z.id_zamowienia, z.id_paczki, z.id_kuriera,z.status,z.uwagi,p.kod2 FROM paczki p, zamowienia z, oddzialy o WHERE z.id_paczki=p.id_paczki AND o.id=z.pozycja AND z.pozycja='"+lista.get(i)+"' AND (z.status LIKE 'oczekiwanie na dostarczenie' OR (z.status LIKE 'do odbioru' AND p.data_nad='"+sdf.format(data)+"')) ORDER BY p.kod2 ASC");
					if(!rs.first()) out.write("Wystąpił błąd! Brak paczek do przyporządkowania w placówce o ID: "+lista.get(i)+" <br>");
					else{
						rs.previous();
						out.write("<table style='text-align:center' id='tabela_paczek2'>");
						out.write("<tr bgcolor='#ADD8E6' ><td style='border: 1px solid;' width=180px;>Id zamówienia</td><td style='border: 1px solid;' width=180px;>Id paczki</td><td style='border: 1px solid;' width=180px;>Kod odbiorcy</td><td style='border: 1px solid;' width=180px;>Id kuriera</td><td style='border: 1px solid;' width=180px;>Status</td><td style='border: 1px solid;' width=180px;>Uwagi</td></tr>");
						while(rs.next()){
						if(rs.isFirst()) out.write("<p style='text-align:left;'>Nieprzydzielone zamówienia w placówce: "+rs.getString("nazwa")+"</p>");
							lista2.add(rs.getInt("z.id_zamowienia"));
							status.add(rs.getString("z.status"));
							out.write("<td style='border: 1px solid;'>"+rs.getInt("z.id_zamowienia")+"</td>");
							out.write("<td style='border: 1px solid;'>"+rs.getInt("z.id_paczki")+"</td>");
							out.write("<td style='border: 1px solid;'>"+rs.getString("p.kod2")+"</td>");
							if(rs.getInt("z.id_kuriera")!=0) out.write("<td style='border: 1px solid;'>"+rs.getInt("z.id_kuriera")+"</td>");
							else out.write("<td style='border: 1px solid;'>nieprzyporządkowane</td>");
							out.write("<td style='border: 1px solid;'>"+rs.getString("z.status")+"</td>");
							if(rs.getString("z.uwagi")==null) out.write("<td style='border: 1px solid;'>brak</td>");
							else out.write("<td style='border: 1px solid;'>"+rs.getString("z.uwagi")+"</td>");
							out.write("</tr>");
						}
						out.write("</table>");
						out.write("<br>");							
						rs = stmt.executeQuery("SELECT id_kuriera FROM kurierzy WHERE id_oddzialu='"+lista.get(i)+"' AND status='aktywny';");							
						if(!rs.first()) {
							out.write("Błąd! Nie ma możliwości rozwiezienia zamówień z powodu braku dostępnych kurierów w placówce. <br><br><hr><br>");
						}
						else{
							rs.previous();
							while(rs.next()){
								kurierzy.add(rs.getInt("id_kuriera"));
							}
							il=kurierzy.size();
							tmp=(int) lista2.size()/il;
							tmp2=lista2.size()%il;
							for(j=0;j<il;j++){
								podzial.add(tmp);								
							}
							for(j=0;j<tmp2;j++){
								tmp=Integer.parseInt(podzial.get(j).toString());
								tmp++;
								podzial.set(j,tmp);
							}
							tmp=0;
							k=0;
							l=0;
							for(j=0;j<il;){
								if(k==lista2.size()) break;
								System.out.println("nr kuriera:"+kurierzy.get(j)+" "+j);
								for(;k<lista2.size();k++,l++){
									System.out.println("id_zamowienia:"+lista2.get(k)+" "+k);
									if(status.get(l).equals("oczekiwanie na dostarczenie")) query = stmt.executeUpdate("UPDATE `kurier`.`zamowienia` SET `id_kuriera` = '"+kurierzy.get(j)+"', `status` = 'dowoz do klienta' WHERE `id_zamowienia`= '"+lista2.get(k)+"';");
									else query = stmt.executeUpdate("UPDATE `kurier`.`zamowienia` SET `id_kuriera` = '"+kurierzy.get(j)+"', `status` = 'odbior przez kuriera' WHERE `id_zamowienia`= '"+lista2.get(k)+"';");
									tmp++;
									if(tmp==Integer.parseInt(podzial.get(j).toString())) {
										 String odp2="";
											try {
											  Connection con2 =mb.commons.DbConnection.getConnection();
											  Statement stmt2 = con2.createStatement();
											  ResultSet rs2 = stmt2.executeQuery("SELECT * FROM zamowienia, kurierzy,oddzialy,paczki WHERE kurierzy.id_kuriera="+kurierzy.get(j)+" AND kurierzy.id_kuriera = zamowienia.id_kuriera AND kurierzy.id_oddzialu=oddzialy.id AND paczki.id_paczki=zamowienia.id_paczki AND (zamowienia.status LIKE 'dowoz do klienta' OR  DATE(paczki.data_dor) = DATE(NOW()))");
											  if(!rs2.wasNull()){
											  while(rs2.next()){
												  if(rs2.isFirst()){
												  odp2+="'"+rs2.getString("oddzialy.adres")+"',[";
												  }
												 		odp2+="{ location:'"+rs2.getString("paczki.adres2")+" , "+rs2.getString("paczki.miejscowosc2")+"'}"; 
												 		if(!rs2.isLast()){
												 			odp2+=",";
												 		}
												 		else{
												 			odp2+="]";
												 		}
											  }	  
											  System.out.println(odp2);
											  
											  }
											} catch (Exception e) {
												e.printStackTrace();
											}
											String a = "rysujDroge("+odp2+","+kurierzy.get(j)+");";
											guziki.add(a);
										//	response.sendRedirect("trasa.jsp?trasa="+odp2+"&id="+kurierzy.get(j));
										 String droga = odp;
										j++;
										k++;
										l++;
										tmp=0;
										break;
									}
								}
								
							}
							out.write("<p style='text-align:left;'>Przyporządkowano kurierów do następujących paczek: </p>");
							out.write("<table style='text-align:center' id='tabela_paczek2'>");
							out.write("<tr bgcolor='#ADD8E6' ><td style='border: 1px solid;' width=180px;>Id zamówienia</td><td style='border: 1px solid;' width=180px;>Id paczki</td><td style='border: 1px solid;' width=180px;>Kod odbiorcy</td><td style='border: 1px solid;' width=180px;>Id kuriera</td><td style='border: 1px solid;' width=180px;>Status</td><td style='border: 1px solid;' width=180px;>Uwagi</td></tr>");
							for(j=0;j<lista2.size();j++){
								rs = stmt.executeQuery("SELECT z.id_zamowienia, z.id_paczki, z.id_kuriera,z.status,z.uwagi,p.kod2 FROM paczki p, zamowienia z WHERE z.id_paczki=p.id_paczki AND z.pozycja='"+lista.get(i)+"' AND z.id_zamowienia='"+lista2.get(j)+"' AND (z.status LIKE 'dowoz do klienta' OR z.status LIKE 'odbior przez kuriera') ORDER BY p.kod2 ASC");											
								while(rs.next()){
									out.write("<td style='border: 1px solid;'>"+rs.getInt("z.id_zamowienia")+"</td>");
									out.write("<td style='border: 1px solid;'>"+rs.getInt("z.id_paczki")+"</td>");
									out.write("<td style='border: 1px solid;'>"+rs.getString("p.kod2")+"</td>");
									if(rs.getInt("z.id_kuriera")!=0) out.write("<td style='border: 1px solid;'>"+rs.getInt("z.id_kuriera")+"</td>");
									else out.write("<td style='border: 1px solid;'>nieprzyporządkowane</td>");
									out.write("<td style='border: 1px solid;'>"+rs.getString("z.status")+"</td>");
									if(rs.getString("z.uwagi")==null) out.write("<td style='border: 1px solid;'>brak</td>");
									else out.write("<td style='border: 1px solid;'>"+rs.getString("z.uwagi")+"</td>");
									out.write("</tr>");
								}	
							}
							out.write("</table>");
							for(int z=0;z<guziki.size();z++){
							out.write("<input type=button value='przydziel trasy' onClick="+'"'+guziki.get(z)+'"');
							}
							out.write("<br>");	
							out.write("<br><hr><br>");							
						}
					}	
				}
				out.write("<table style='text-align:center' id='tabela_paczek2'>");
				out.write("<tr><td style='border: 1px solid;'><input type=button value='Wyczyść wszystko' style='width:180px;' onClick='czysc();' class=przycisk></td></td></tr>");
				out.write("</table>");
				
			} catch (SQLException e) {
				out.write(e.toString());
				e.printStackTrace();
			}
		}//dodanie newsa
		else if (request.getParameter("funkcja")!=null && request.getParameter("funkcja").equals("news")){
			try {
				Connection con = mb.commons.DbConnection.getConnection();
				Statement stmt = con.createStatement();
				SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
				Date data = new Date();
				int id=0,id_pracownika=0,jezyk=0;
				ResultSet rs = stmt.executeQuery("SELECT id FROM uzytkownicy WHERE login = '"+sesja.getAttribute("nick")+"';");
				while(rs.next()){
					id=rs.getInt("id");
				}
				rs = stmt.executeQuery("SELECT id_pracownika FROM pracownicy WHERE id = '"+id+"';");
				while(rs.next()){
					id_pracownika=rs.getInt("id_pracownika");
				}
				if(request.getParameter("jezyk")!=null) id = stmt.executeUpdate("INSERT INTO `kurier`.`newsy` (`id_pracownika` ,`data_dodania`,`tresc`,`jezyk`) VALUES ('"+id_pracownika+"','"+sdf.format(data)+"','"+request.getParameter("trescnewsa")+"','1');");
				else id = stmt.executeUpdate("INSERT INTO `kurier`.`newsy` (`id_pracownika` ,`data_dodania`,`tresc`,`jezyk`) VALUES ('"+id_pracownika+"','"+sdf.format(data)+"','"+request.getParameter("trescnewsa")+"','0');");
				response.sendRedirect("index.jsp?add=congratulations&main=news");	
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}//zamawianie kuriera
		else if (request.getParameter("funkcja")!=null && request.getParameter("funkcja").equals("order")){
			try {
				Connection con = mb.commons.DbConnection.getConnection();
				Statement stmt = con.createStatement();
				int id=0,zap,id_paczki=0,pozycja=0;
				ResultSet rs = stmt.executeQuery("SELECT k.id_klienta FROM klienci k, uzytkownicy u WHERE u.login = '"+sesja.getAttribute("nick")+"' AND k.id=u.id;");
				while(rs.next()){
					id=rs.getInt("id_klienta");
				}
				zap = stmt.executeUpdate("INSERT INTO `kurier`.`paczki` (`id_nadawcy` ,`imie1`,`nazwisko1`,`adres1`,`kod1`,`miejscowosc1`,`imie2`,`nazwisko2`,`adres2`,`kod2`,`miejscowosc2`,`data_nad`) VALUES ('"+id+"','"+request.getParameter("imie")+"','"+request.getParameter("nazwisko")+"','"+
						request.getParameter("adres")+"','"+request.getParameter("kod")+"','"+request.getParameter("miasto")+"','"+request.getParameter("imie2")+"','"+request.getParameter("nazwisko2")+"','"+request.getParameter("adres2")+"','"+request.getParameter("kod2")+"','"+request.getParameter("miasto2")+"','"+request.getParameter("data")+"');");
				rs = stmt.executeQuery("SELECT id_paczki FROM paczki WHERE data_nad = '"+request.getParameter("data")+"' AND id_nadawcy='"+id+"' AND adres2='"+request.getParameter("adres2")+"';");
				while(rs.next()){
					id_paczki=rs.getInt("id_paczki");
				}
				rs = stmt.executeQuery("SELECT id_paczki FROM paczki WHERE data_nad = '"+request.getParameter("data")+"' AND id_nadawcy='"+id+"' AND adres2='"+request.getParameter("adres2")+"';");
				while(rs.next()){
					id_paczki=rs.getInt("id_paczki");
				}				
				rs = stmt.executeQuery("SELECT id from oddzialy where '"+request.getParameter("kod").substring(0,2)+"'>=kod1 AND '"+request.getParameter("kod").substring(0,2)+"'<=kod2");
				while(rs.next()){
					pozycja=rs.getInt("id");
				}
				zap = stmt.executeUpdate("INSERT INTO `kurier`.`zamowienia` (`id_paczki`,`pozycja`,`status`,`uwagi`) VALUES ('"+id_paczki+"','"+pozycja+"','do odbioru','"+request.getParameter("uwagi")+"');");
				rs = stmt.executeQuery("SELECT id_zamowienia FROM zamowienia WHERE id_paczki = '"+id_paczki+"';");
				while(rs.next()){
					zap=rs.getInt("id_zamowienia");
				}
				response.sendRedirect("index.jsp?add=congratulations&main=order&id="+zap);	
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}//obliczanie ceny paczki
		else if (request.getParameter("funkcja")!=null && request.getParameter("funkcja").equals("count_price")){
			try {
				Connection con = mb.commons.DbConnection.getConnection();
				Statement stmt = con.createStatement();
				ArrayList masa = new ArrayList();
				ArrayList ubezpieczenie = new ArrayList();
				ArrayList inne = new ArrayList();
				String w="",z="";
				boolean status=true;
				boolean zakres=true;
				Double waga,cena=0.0,wartosc;
				int i=0;
				ResultSet rs = stmt.executeQuery("SELECT min,max,wartosc FROM cennik WHERE opis='masa';");
				while(rs.next()){
					masa.add(rs.getDouble("min"));
					masa.add(rs.getDouble("max"));
					masa.add(rs.getDouble("wartosc"));
				}
				rs = stmt.executeQuery("SELECT min,max,wartosc FROM cennik WHERE opis='ubezpieczenie';");
				while(rs.next()){
					ubezpieczenie.add(rs.getDouble("min"));
					ubezpieczenie.add(rs.getDouble("max"));
					ubezpieczenie.add(rs.getDouble("wartosc"));
				}
				rs = stmt.executeQuery("SELECT opis,wartosc FROM cennik WHERE opis!='masa' AND opis!='ubezpieczenie';");
				while(rs.next()){
					inne.add(rs.getString("opis"));
					inne.add(rs.getDouble("wartosc"));
				}
				if(request.getParameter("waga")!=null){
					w = request.getParameter("waga").toString();
					w = w.replace(",",".");	
					waga=Double.parseDouble(w);
					for(i=0;i<masa.size();){
						if(Double.parseDouble(masa.get(i).toString())<=waga){
							i++;			
							if(Double.parseDouble(masa.get(i).toString())>=waga){
								i++;
								cena+=Double.parseDouble(masa.get(i).toString());
								break;
							}else{
								i+=2;
							}							
						}else{
							i+=3;
						}						
					}	
					if(cena==0.0) zakres=false;					
					if(request.getParameter("ube").equals("true")){
						waga=cena;
						z = request.getParameter("war").toString();
						z = z.replace(",",".");
						wartosc=Double.parseDouble(z);
						for(i=0;i<ubezpieczenie.size();){
							if(Double.parseDouble(ubezpieczenie.get(i).toString())<=wartosc){
								i++;			
								if(Double.parseDouble(ubezpieczenie.get(i).toString())>=wartosc){
									i++;
									cena+=Double.parseDouble(ubezpieczenie.get(i).toString());
									break;
								}else{
									i+=2;
								}							
							}else{
								i+=3;
							}							
						}	
						if(cena==waga) zakres=false;
					}					
					if(request.getParameter("kur").equals("true")){
						for(i=0;i<inne.size();i+=2){
							if(inne.get(i).toString().equals("dojazd")){
								i++;
								cena+=Double.parseDouble(inne.get(i).toString());
								break;
							}
						}
					}
					if(request.getParameter("pak").equals("true")){
						for(i=0;i<inne.size();i+=2){
							if(inne.get(i).toString().equals("pakunek")){
								i++;
								cena+=Double.parseDouble(inne.get(i).toString());
								break;
							}
						}
					}
					if(request.getParameter("pob").equals("true")){
						for(i=0;i<inne.size();i+=2){
							if(inne.get(i).toString().equals("pobranie")){
								i++;
								cena+=Double.parseDouble(inne.get(i).toString());
								break;
							}
						}
					}
					if(status==false) out.write("false");
					else if(zakres==false) out.write("out");
					else out.write(cena.toString());
				}
			} catch(NumberFormatException ex){
				out.write("false");
			} catch (SQLException e) {
				out.write("Wystąpił błąd! Niepoprawnie sparametryzowane zapytanie do bazy lub nie masz uprawnień.<br>");
				e.printStackTrace();
			}
		}//dodanie paczki przez pracownika
		else if (request.getParameter("add")!=null && request.getParameter("add").equals("package")){
			try {
				Connection con = mb.commons.DbConnection.getConnection();
				Statement stmt = con.createStatement();
				SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
				Date data = new Date();
				NumberFormat format = new DecimalFormat("#0.00");
				int id=0,zap,id_paczki=0,pozycja=0;
				if(request.getParameter("identyfikator").equals("brak\r\n") || request.getParameter("identyfikator").equals("none")){
					zap = stmt.executeUpdate("INSERT INTO `kurier`.`paczki` (`imie1`,`nazwisko1`,`adres1`,`kod1`,`miejscowosc1`,`imie2`,`nazwisko2`,`adres2`,`kod2`,`miejscowosc2`,`data_nad`,`oplata`,`pobranie`) VALUES ('"+
							request.getParameter("imie")+"','"+
							request.getParameter("nazwisko")+"','"+
							request.getParameter("adres")+"','"+
							request.getParameter("kod")+"','"+
							request.getParameter("miasto")+"','"+
							request.getParameter("imie2")+"','"+
							request.getParameter("nazwisko2")+"','"+
							request.getParameter("adres2")+"','"+
							request.getParameter("kod2")+"','"+
							request.getParameter("miasto2")+"','"+
							sdf.format(data)+"','"+
							Double.parseDouble(request.getParameter("wynik").toString())+"','"+
							Double.parseDouble(request.getParameter("pobranie").toString())+"');");		
					
				}else{
					zap = stmt.executeUpdate("INSERT INTO `kurier`.`paczki` (`id_nadawcy` ,`imie1`,`nazwisko1`,`adres1`,`kod1`,`miejscowosc1`,`imie2`,`nazwisko2`,`adres2`,`kod2`,`miejscowosc2`,`data_nad`,`oplata`,`pobranie`) " +
							"VALUES ('"+request.getParameter("identyfikator")+"','"+
							request.getParameter("imie")+"','"+
							request.getParameter("nazwisko")+"','"+
							request.getParameter("adres")+"','"+
							request.getParameter("kod")+"','"+
							request.getParameter("miasto")+"','"+
							request.getParameter("imie2")+"','"+
							request.getParameter("nazwisko2")+"','"+
							request.getParameter("adres2")+"','"+
							request.getParameter("kod2")+"','"+
							request.getParameter("miasto2")+"','"+
							sdf.format(data)+"','"+
							Double.parseDouble(request.getParameter("wynik").toString())+"','"+
							Double.parseDouble(request.getParameter("pobranie").toString())+"');");					
				}
				ResultSet rs  = stmt.executeQuery("SELECT id_paczki FROM paczki WHERE data_nad = '"+sdf.format(data)+"' AND nazwisko1='"+request.getParameter("nazwisko")+"' AND adres2='"+request.getParameter("adres2")+"' AND oplata='"+request.getParameter("wynik")+"';");
				while(rs.next()){
					id_paczki=rs.getInt("id_paczki");
				}
				rs = stmt.executeQuery("SELECT p.id_oddzialu from pracownicy p, uzytkownicy u where u.id=p.id AND u.login='"+sesja.getAttribute("nick")+"';");
				while(rs.next()){
					pozycja=rs.getInt("id_oddzialu");
				}
				zap = stmt.executeUpdate("INSERT INTO `kurier`.`zamowienia` (`id_paczki`,`pozycja`,`status`,`uwagi`) VALUES ('"+id_paczki+"','"+pozycja+"','przyjeto','"+request.getParameter("uwagi")+"');");
				rs = stmt.executeQuery("SELECT id_zamowienia FROM zamowienia WHERE id_paczki = '"+id_paczki+"';");
				while(rs.next()){
					zap=rs.getInt("id_zamowienia");
				}
				response.sendRedirect("index.jsp?add=congratulations&main=add&id="+zap);	
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		else{
			out.write("Wystąpił błąd! Niepoprawnie sparametryzowane zapytanie do bazy lub nie masz uprawnień.<br>");
		}		
	}
 
	public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
		doPost(request,response);
	}
}